Джерело даних - European Centre for Disease Prevention and Control.

Дані на 7 квітня



Динаміка кількості нових смертей за день

Країни із загальною кількістю смертей більше 2500



Країни із загальною кількістю смертей від 500 до 2500




Динаміка загальної кількості смертей


Країни з кількістю смертей більше 2500



Країни з кількістю смертей від 350 до 2500 + Італія додана для порівняння



Країни з кількістю смертей від 150 до 350 + Італія додана для порівняння



Європейські країни з кількістю смертей від 35 до 350 + Італія додана для порівняння




Динаміка смертності в різних країнах - Логарифмічна шкала




Рівень смертності в різних країнах




Динаміка кількості випадків COVID-19


Країни з кількістю більше 20000 випадків




Країни з кількістю випадків від 8000 до 20000




Європейські Країни з кількістю випадків від 1400 до 8000


LS0tDQp0aXRsZTogItCf0L7RiNC40YDQtdC90L3RjyDQtdC/0ZbQtNC10LzRltGXIENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KZWRpdG9yX29wdGlvbnM6IA0KY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQ0KLS0tDQoNCg0KDQogDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShodHRyKQ0KbGlicmFyeShzY2FsZXMpDQoNCg0KYGBgDQoNCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KDQp1cmwgPC0gcGFzdGUoImh0dHBzOi8vd3d3LmVjZGMuZXVyb3BhLmV1L3NpdGVzL2RlZmF1bHQvZmlsZXMvZG9jdW1lbnRzL0NPVklELTE5LWdlb2dyYXBoaWMtZGlzYnRyaWJ1dGlvbi13b3JsZHdpZGUtIixmb3JtYXQoU3lzLnRpbWUoKSwgIiVZLSVtLSVkIiksICIueGxzeCIsIHNlcCA9ICIiKQ0KIA0KR0VUKHVybCwgYXV0aGVudGljYXRlKCI6IiwgIjoiLCB0eXBlPSJudGxtIiksIHdyaXRlX2Rpc2sodGYgPC0gdGVtcGZpbGUoZmlsZWV4dCA9ICIueGxzeCIpKSkNCg0KI2NybiA8LSByZWFkX2V4Y2VsKCJEOlxcRG93bmxvYWRzXFxDT1ZJRC0xOS1nZW9ncmFwaGljLWRpc2J0cmlidXRpb24td29ybGR3aWRlLTIwMjAtMDMtMjIueGxzeCIpICU+JQ0KY3JuIDwtIHJlYWRfZXhjZWwodGYpICU+JSByZW5hbWUoZGF0ZT1kYXRlUmVwLENvdW50cnk9NyxJbmZlY3RlZF9uZXc9Y2FzZXMsRGVhdGhzX25ldz1kZWF0aHMpICU+JQ0KICBtdXRhdGUoZGF0ZT1hcy5EYXRlKGRhdGUpLTEsDQogICAgICAgICBEZWF0aHNfbmV3PWlmZWxzZShDb3VudHJ5PT0iRnJhbmNlIiZkYXRlPT0iMjAyMC0wNC0wMyIsMTEyMCxEZWF0aHNfbmV3KSwNCiAgICAgICAgIERlYXRoc19uZXc9aWZlbHNlKENvdW50cnk9PSJGcmFuY2UiJmRhdGU9PSIyMDIwLTA0LTAyIiwxMzU1LERlYXRoc19uZXcpLA0KICAgICAgICAgQ291bnRyeT1zdHJfcmVwbGFjZV9hbGwoQ291bnRyeSwiXyIsIiAiKSwNCiAgICAgICAgIENvdW50cnk9c3RyX3JlcGxhY2UoQ291bnRyeSwiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhfFVuaXRlZF9TdGF0ZXNfb2ZfQW1lcmljYSIsIlVTIiksDQogICAgICAgICBDb3VudHJ5PXN0cl9yZXBsYWNlKENvdW50cnksIkNBTkFEQSIsIkNhbmFkYSIpLA0KICAgICAgICAgQ291bnRyeT1zdHJfcmVwbGFjZShDb3VudHJ5LCJVbml0ZWQgS2luZ2RvbXxVbml0ZWQga2luZ2RvbXxVbml0ZWRfS2luZ2RvbSIsIlVLIiksDQogICAgICAgICBDb3VudHJ5PXN0cl9yZXBsYWNlKENvdW50cnksInN3aXR6ZXJsYW5kIiwiU3dpdHplcmxhbmQiKSwNCiAgICAgICAgIGRhdGU9aWZfZWxzZShDb3VudHJ5ICVpbiUgYygiU3BhaW4iKSwgZGF0ZS1kYXlzKDEpLGRhdGUpLA0KICAgICAgICAgZXVyb3BlPWdlb0lkICVpbiUgYygNCiAgICAgICAgJ0FMJywgJ0FEJywgJ0FNJywgJ0FUJywgJ0JZJywgJ0JFJywgJ0JBJywgJ0JHJywgJ0NIJywgJ0NZJywgJ0NaJywgJ0RFJywNCiAgICAgICAgJ0RLJywgJ0VFJywgJ0VTJywgJ0ZPJywgJ0ZJJywgJ0ZSJywgJ0dCJywgJ0dFJywgJ0dJJywgJ0dSJywgJ0hVJywgJ0hSJywNCiAgICAgICAgJ0lFJywgJ0lTJywgJ0lUJywgJ0xJJywgJ0xUJywgJ0xVJywgJ0xWJywgJ01DJywgJ01LJywgJ01UJywgJ05PJywgJ05MJywgJ1BMJywNCiAgICAgICAgJ1BUJywgJ1JPJywgJ1JVJywgJ1NFJywgJ1NJJywgJ1NLJywgJ1NNJywgJ1RSJywgJ1VBJywgJ1ZBJw0KICAgICkNCiAgICAgICAgICNDb3VudHJ5PXN0cl9yZXBsYWNlKENvdW50cnksIkN6ZWNoIHJlcHVibGljfEN6ZWNoX1JlcHVibGljIiwiQ3plY2ggUmVwdWJsaWMiKSwNCiAgICAgICAgICkgJT4lDQogIGFycmFuZ2UoQ291bnRyeSxkYXRlKSAlPiUNCiAgZmlsdGVyKEluZmVjdGVkX25ldz4wKSAlPiUgDQogIGdyb3VwX2J5KENvdW50cnkpICU+JQ0KICBjb21wbGV0ZShkYXRlPXNlcS5EYXRlKGFzLkRhdGUoIjIwMTktMTItMzAiKSxTeXMuRGF0ZSgpLTEsYnk9ImRheSIpKSAlPiUgDQoNCiAgbXV0YXRlKEluZmVjdGVkPWN1bXN1bShpZmVsc2UoaXMubmEoSW5mZWN0ZWRfbmV3KSwwLEluZmVjdGVkX25ldykpLA0KICAgICAgICAgRGVhdGhzPWN1bXN1bShpZmVsc2UoaXMubmEoRGVhdGhzX25ldyksMCxEZWF0aHNfbmV3KSksDQogICAgICAgICBnZW9JZD1tYXgoZ2VvSWQpDQogICAgICAgICApICU+JQ0KICB1bmdyb3VwKCkgJT4lDQogIGZpbHRlcighc3RyX2RldGVjdChDb3VudHJ5LCJpbnRlcm5hdGlvbmFsIikpICU+JQ0KICAgIG11dGF0ZShJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09Ikl0YWx5IiZkYXRlPT0iMjAyMC0wMy0xNCIsMjExNTcsSW5mZWN0ZWQpLA0KICAgICAgICAgICBEZWF0aHM9aWZlbHNlKENvdW50cnk9PSJJdGFseSImZGF0ZT09IjIwMjAtMDMtMTQiLDE0NDEsRGVhdGhzKSwNCiAgICAgICAgICAgSW5mZWN0ZWQ9aWZlbHNlKENvdW50cnk9PSJOb3J3YXkiJmRhdGU9PSIyMDIwLTAzLTEzIiw4MDAsSW5mZWN0ZWQpLA0KICAgICAgICAgICBJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09IlN3aXR6ZXJsYW5kIiZkYXRlPT0iMjAyMC0wMy0xNiIsMjM1MyxJbmZlY3RlZCksDQogICAgICAgICAgIERlYXRocz1pZmVsc2UoQ291bnRyeT09IlN3aXR6ZXJsYW5kIiZkYXRlPT0iMjAyMC0wMy0xNiIsMTUsRGVhdGhzKSwNCiAgICAgICAgICAgRGVhdGhzPWlmZWxzZShDb3VudHJ5PT0iVVMiJmRhdGU9PSIyMDIwLTAzLTE5IiwyMDAsRGVhdGhzKSwNCiAgICAgICAgICAgI0luZmVjdGVkPWlmZWxzZShDb3VudHJ5PT0iR2VybWFueSImZGF0ZT09YXMuY2hhcmFjdGVyKFN5cy5EYXRlKCktMSksNzk2OTYsSW5mZWN0ZWQpLA0KICAgICAgICAgICAjRGVhdGhzPWlmZWxzZShDb3VudHJ5PT0iR2VybWFueSImZGF0ZT09YXMuY2hhcmFjdGVyKFN5cy5EYXRlKCktMSksMTAxNyxEZWF0aHMpLA0KICAgICAgICAgICAjSW5mZWN0ZWQ9aWZlbHNlKENvdW50cnk9PSJJdGFseSImZGF0ZT09YXMuY2hhcmFjdGVyKFN5cy5EYXRlKCktMSksMTI0NjMyLEluZmVjdGVkKSwNCiAgICAgICAgICAgI0RlYXRocz1pZmVsc2UoQ291bnRyeT09Ikl0YWx5IiZkYXRlPT1hcy5jaGFyYWN0ZXIoU3lzLkRhdGUoKS0xKSwxNTM2MixEZWF0aHMpLA0KICAgICAgICAgICBJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09IlNwYWluIiZkYXRlPT1hcy5jaGFyYWN0ZXIoU3lzLkRhdGUoKS0xKSwxNDY2OTAsSW5mZWN0ZWQpLA0KICAgICAgICAgICBEZWF0aHM9aWZlbHNlKENvdW50cnk9PSJTcGFpbiImZGF0ZT09YXMuY2hhcmFjdGVyKFN5cy5EYXRlKCktMSksMTQ1NTUsRGVhdGhzKSwNCiAgICAgICAgICAgI0luZmVjdGVkPWlmZWxzZShDb3VudHJ5PT0iRnJhbmNlIiZkYXRlPT1hcy5jaGFyYWN0ZXIoU3lzLkRhdGUoKS0xKSw2ODYwNSxJbmZlY3RlZCksDQogICAgICAgICAgICNEZWF0aHM9aWZlbHNlKENvdW50cnk9PSJGcmFuY2UiJmRhdGU9PWFzLmNoYXJhY3RlcihTeXMuRGF0ZSgpLTEpLDc1NjAsRGVhdGhzKSwNCiAgICAgICAgICAgRGVhdGhzX25ldyA9IGlmZWxzZShpcy5uYShEZWF0aHNfbmV3KXxEZWF0aHNfbmV3PT0wLERlYXRocy1sYWcoRGVhdGhzKSxEZWF0aHNfbmV3KQ0KDQopDQoNCg0KDQoNCg0KI2h0dHBzOi8vd3d3Lm1zY2JzLmdvYi5lcy9wcm9mZXNpb25hbGVzL3NhbHVkUHVibGljYS9jY2F5ZXMvYWxlcnRhc0FjdHVhbC9uQ292LUNoaW5hL2RvY3VtZW50b3MvQWN0dWFsaXphY2lvbl81NV9DT1ZJRC0xOS5wZGYNCiNjcm4gJT4lIGZpbHRlcihDb3VudHJ5PT0iVVMiKSAlPiUgYXJyYW5nZShkZXNjKGRhdGUpKSAlPiUgVmlldygpDQpjcm4gJT4lIGZpbHRlcihDb3VudHJ5PT0iRnJhbmNlIikgJT4lIGFycmFuZ2UoZGVzYyhkYXRlKSkgJT4lIFZpZXcoKQ0KI2NybiAlPiUgZmlsdGVyKENvdW50cnk9PSJTcGFpbiIpICU+JSBhcnJhbmdlKGRlc2MoZGF0ZSkpICU+JSBWaWV3KCkNCmNybiAlPiUgZmlsdGVyKENvdW50cnk9PSJHZXJtYW55IikgJT4lIGFycmFuZ2UoZGVzYyhkYXRlKSkgJT4lIFZpZXcoKQ0KY3JuICU+JSBmaWx0ZXIoQ291bnRyeT09Ikl0YWx5IikgJT4lIGFycmFuZ2UoZGVzYyhkYXRlKSkgJT4lIFZpZXcoKQ0KDQojY3JuICU+JSBncm91cF9ieShHZW9JZCkgJT4lIHN1bW1hcmlzZShuPWxlbmd0aCh1bmlxdWUoQ291bnRyeSkpKSAlPiUgVmlldygpDQoNCg0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCg0Kc3RhcnRfaTwtMTAwDQpzdGFydF9kPC01DQoNCmNybjE8LWNybiAlPiUgDQogICAgICBmaWx0ZXIoIUNvdW50cnkgJWluJSBjKCJPdGhlcnMiLCJDaGluYSIsIklyYW4iKSkgJT4lDQogIGZpbHRlcihJbmZlY3RlZD5zdGFydF9pKSAlPiUNCiAgZ3JvdXBfYnkoQ291bnRyeSkgJT4lDQogIG11dGF0ZShvcmQ9MTpuKCksDQogICAgICAgICB0b3RhbD1tYXgoSW5mZWN0ZWQpLA0KICAgICAgICAgdG90YWxEPW1heChEZWF0aHMpLA0KICAgICAgICAgbj1uKCksDQogICAgICAgICBkZWF0aF9yYXRlPURlYXRocykgJT4lDQogICAgdW5ncm91cCgpDQoNCmNybjI8LWNybiAlPiUgDQogIGZpbHRlcihEZWF0aHM+c3RhcnRfZCkgJT4lDQogIGZpbHRlcighQ291bnRyeSAlaW4lIGMoIk90aGVycyIsIkNoaW5hIiwiSXJhbiIpKSAlPiUNCiAgZ3JvdXBfYnkoQ291bnRyeSkgJT4lDQogIG11dGF0ZShvcmQ9MTpuKCksDQogICAgICAgICB0b3RhbD1tYXgoRGVhdGhzKSwNCiAgICAgICAgIG49bigpKSAlPiUNCiAgICB1bmdyb3VwKCkNCg0KY3JuMzwtIGNybiAlPiUgIA0KICBmaWx0ZXIoIUNvdW50cnkgJWluJSBjKCJPdGhlcnMiKSkgJT4lDQogIGdyb3VwX2J5KENvdW50cnkpICU+JQ0KICBtdXRhdGUoZGVhdGhfcmF0ZT0oRGVhdGhzKjEwMC9JbmZlY3RlZCkgJT4lIHJvdW5kKGRpZ2l0cyA9IDEpKSAlPiUNCiAgZmlsdGVyKHJvd19udW1iZXIoKT09bigpJkRlYXRocz4xKSAlPiUgdW5ncm91cCgpICU+JSANCmFycmFuZ2UoSW5mZWN0ZWQgJT4lIGRlc2MoKSkNCg0KICANCmNybl90aGVtZTwtDQogIHRoZW1lX21pbmltYWwoKSArDQogIHRoZW1lKA0KICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCksDQogIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogIGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMC44LCAiY20iKSwNCiAgbGVnZW5kLmtleS53aWR0aCA9IHVuaXQoMiwiY20iKSwNCiAgI2xlZ2VuZC5wb3NpdGlvbj0idG9wIiwNCiAgcGxvdC5tYXJnaW49dW5pdChjKDAuNSwwLjUsMC41LDAuNSksImNtIiksDQogIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplPTE0LGNvbG91ciA9ICJncmV5MzAiLG1hcmdpbiA9IG1hcmdpbih0ID0gMTUpKSwNCiAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemU9MTQsY29sb3VyID0gImdyZXkzMCIsbWFyZ2luID0gbWFyZ2luKHIgPSAxNSkpLA0KICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChzaXplPTExLGNvbG91ciA9ICJncmV5NDAiKSwNCiAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZT0xMSxjb2xvdXIgPSAiZ3JleTQwIiksDQogIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZT0xOCxjb2xvdXIgPSAiZ3JleTUiKSwNCiAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPTEzLGNvbG91ciA9ICJncmV5NDUiKQ0KICApICANCg0KDQpgYGANCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KDQpjcm5fbmV3X2RlYXRoIDwtIGZ1bmN0aW9uKGRhdGEsIG1pbiwgbWF4PTEwMDAwMDAsIG5uPTEwLCBzcGFuPTAuNDUsIGJyaz01MCwgcGx0PSJTZXQxIiwgZGlyZWN0aW9uPTEpew0KDQpzdWJ0aXRsZTwtaWZlbHNlKG1heD09MTAwMDAwMCxwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC30LDQs9Cw0LvRjNC90L7RjiDQutGW0LvRjNC60ZbRgdGC0Y4g0L/QvtC80LXRgNC70LjRhSDQsdGW0LvRjNGI0LUiLG1pbiwi0LLQuNC/0LDQtNC60ZbQsiIpLA0KICAgICAgICAgICAgICAgICBwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC30LDQs9Cw0LvRjNC90L7RjiDQutGW0LvRjNC60ZbRgdGC0Y4g0L/QvtC80LXRgNC70LjRhSDQstGW0LQiLG1pbiwi0LTQviIsbWF4LCLQstC40L/QsNC00LrRltCyIikpDQoNCiAgICAgICAgICAgICAgICAgDQpwbG90PC1nZ3Bsb3QoZGF0YSAlPiUgZmlsdGVyKGJldHdlZW4odG90YWwsbWluLG1heCkmbj5ubiksIGFlcyh4PW9yZCx5PURlYXRoc19uZXcsY29sb3IgPSBDb3VudHJ5KSkgKw0KICBnZW9tX3BvaW50KHNpemU9MS41LGFscGhhID0gMC41KSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsb2VzcyIsIHNlPUYsc2l6ZT0xLjUsIHNwYW4gPSBzcGFuKSArDQogICNzdGF0X3Ntb290aChhZXMoeT1EZWF0aHNfbmV3LCB4PW9yZCksIGZvcm11bGEgPSB5IH4gcyh4LCBrID0gNSksIG1ldGhvZCA9ImdhbSIsIHNlID0gRkFMU0Usc2l6ZT0xLjUpICsNCiAgI3N0YXRfc21vb3RoKGFlcyh5PURlYXRoc19uZXcsIHg9b3JkKSwgbWV0aG9kID0gImxtIixmb3JtdWxhID0geSB+IHBvbHkoeCwgNSksIHNlID0gRkFMU0Usc2l6ZT0xLjUpICsNCg0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDUsIDYwLCA1KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDQwMDAsIGJyaykNCiAgICAgICAgICAgICAgICAgICAgICxsaW1pdHMgPSBjKC01LG1heChkYXRhW2JldHdlZW4oZGF0YSR0b3RhbCxtaW4sbWF4KSxjKCJEZWF0aHNfbmV3IildKSsyKmJyaykNCiAgICAgICAgICAgICAgICAgICAgICkgKw0KICAjc2NhbGVfbGluZXR5cGVfZGlzY3JldGUoKSArDQogICNzY2FsZV9saW5ldHlwZV9pZGVudGl0eSgpICsNCiAgI3NjYWxlX2xpbmV0eXBlX21hbnVhbCh2YWx1ZXM9c2FtcGxlKGMoMSwyKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCa0ZbQu9GM0LrRltGB0YLRjCDQvdC+0LLQuNGFINGB0LzQtdGA0YLQtdC5INC30LAg0LTQtdC90YwiLCB4ID0gcGFzdGUwKCLQmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvdGW0LIg0L/QvtGH0LjQvdCw0Y7Rh9C4INCy0ZbQtCAiLHN0YXJ0X2QsIiDRgdC80LXRgNGC0LXQuSIpLA0KICAgICAgIHRpdGxlID0gItCa0ZbQu9GM0LrRltGB0YLRjCDQvdC+0LLQuNGFINGB0LzQtdGA0YLQtdC5INCy0ZbQtCBDT1ZJRC0xOSDQsiDQtNC10L3RjCIsIA0KICAgICAgIHN1YnRpdGxlID0gc3VidGl0bGUNCiAgICAgICApICsgICANCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9IHBsdCxkaXJlY3Rpb24gPSBkaXJlY3Rpb24pICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvdXIgPSAicmVkMyIpKQ0KDQpyZXR1cm4ocGxvdCkNCn0NCg0KDQpjcm5fdG90YWxfZGVhdGggPC0gZnVuY3Rpb24oZGF0YSwgbWluLCBtYXg9MTAwMDAwMCwgbm49MTAsIGJyaz0yMDAwLCBwbHQ9IlNldDEiLCBkaXJlY3Rpb249MSl7DQoNCnN1YnRpdGxlPC1pZmVsc2UobWF4PT0xMDAwMDAwLHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LfQsNCz0LDQu9GM0L3QvtGOINC60ZbQu9GM0LrRltGB0YLRjiDQv9C+0LzQtdGA0LvQuNGFINCx0ZbQu9GM0YjQtSIsbWluLCLQstC40L/QsNC00LrRltCyIiksDQogICAgICAgICAgICAgICAgIHBhc3RlKCLQmtGA0LDRl9C90Lgg0ZbQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0IixtaW4sItC00L4iLG1heCwi0LLQuNC/0LDQtNC60ZbQsiIpKQ0KDQogICAgICAgICAgICAgICAgICAgDQpwbG90PC1nZ3Bsb3QoZGF0YSAlPiUgZmlsdGVyKGJldHdlZW4odG90YWwsbWluLG1heCkmbj5ubiksIGFlcyh4PW9yZCx5PURlYXRocykpICsNCiAgZ2VvbV9saW5lKGFlcyhjb2xvciA9IENvdW50cnksICNsaW5ldHlwZSA9IENvdW50cnkNCiAgICAgICAgICAgICAgICApLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoNSwgNjAsIDUpKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgIDMwMDAwMCwgYnJrKSkgKw0KICAjc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAyMDAwMCwgMTAwMCkpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2Rpc2NyZXRlKCkgKw0KICAjc2NhbGVfbGluZXR5cGVfaWRlbnRpdHkoKSArDQogICNzY2FsZV9saW5ldHlwZV9tYW51YWwodmFsdWVzPXNhbXBsZShjKDEsMiksIG5yb3coeCkscmVwbGFjZSA9IFQpKSsNCiAgbGFicyh5PSLQl9Cw0LPQsNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDQv9C+0LzQtdGA0LvQuNGFIiwgeCA9IHBhc3RlMCgi0JrRltC70YzQutGW0YHRgtGMINC00L3RltCyINC/0L7Rh9C40L3QsNGO0YfQuCDQstGW0LQgIixzdGFydF9kLCIg0YHQvNC10YDRgtC10LkiKSwNCiAgICAgICB0aXRsZSA9ICLQl9Cw0LPQsNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDRgdC80LXRgNGC0LXQuSDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIiwgDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC30LDQs9Cw0LvRjNC90L7RjiDQutGW0LvRjNC60ZbRgdGC0Y4g0L/QvtC80LXRgNC70LjRhSDQsdGW0LvRjNGI0LUiLHRvdGFsX2RlYXRoX21pbjEsItCy0LjQv9Cw0LTQutGW0LIiKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gcGx0LGRpcmVjdGlvbiA9IGRpcmVjdGlvbikrDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3VyID0gInJveWFsYmx1ZTMiKSkNCg0KcmV0dXJuKHBsb3QpDQp9DQoNCg0KDQoNCg0KY3JuX3RvdGFsX2RlYXRoX2xpbmV0eXBlIDwtIGZ1bmN0aW9uKGRhdGEsIG1pbiwgbWF4PTEwMDAwMDAsIG5uPTUsIGJyaz0xMDAsIHBsdD0iUGFpcmVkIiwgZGlyZWN0aW9uPTEsIGl0YWx5PVRSVUUsZXVyb3BlPUZBTFNFKXsNCg0KaWYgKGl0YWx5KSB7DQogIGlmIChldXJvcGUpIA0KICAgIHsNCiAgICB4PC1kYXRhICU+JSBmaWx0ZXIoKGJldHdlZW4odG90YWwsbWluLG1heCkmbj5ubiZldXJvcGUpfChDb3VudHJ5PT0iSXRhbHkiJkRlYXRoczxtYXgpKQ0KICAgIHN1YnRpdGxlIDwtIHBhc3RlKCLQhNCy0YDQvtC/0LXQudGB0YzQutGWINC60YDQsNGX0L3QuCDQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0IixtaW4sItC00L4iICxtYXgsItCy0LjQv9Cw0LTQutGW0LIgKyDQhtGC0LDQu9GW0Y8g0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPIikNCiAgICAgIH0gDQogIGVsc2UgDQogICAgew0KICAgICAgc3VidGl0bGUgPC0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0IixtaW4sItC00L4iICxtYXgsItCy0LjQv9Cw0LTQutGW0LIgKyDQhtGC0LDQu9GW0Y8g0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPIikNCiAgICAgIHg8LWRhdGEgJT4lIGZpbHRlcigoYmV0d2Vlbih0b3RhbCxtaW4sbWF4KSZuPm5uKXwoQ291bnRyeT09Ikl0YWx5IiZEZWF0aHM8KG1heCticmspKSkNCiAgICB9DQoNCn0gZWxzZSB7DQogICAgaWYgKGV1cm9wZSkge3g8LWRhdGEgJT4lIGZpbHRlcihiZXR3ZWVuKHRvdGFsLG1pbixtYXgpJm4+bm4mZXVyb3BlKQ0KICAgIHN1YnRpdGxlIDwtIHBhc3RlKCLQhNCy0YDQvtC/0LXQudGB0YzQutGWINC60YDQsNGX0L3QuCDQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0IixtaW4sItC00L4iICxtYXgsItCy0LjQv9Cw0LTQutGW0LIiKQ0KICAgIH0gZWxzZSB7DQogICAgeDwtZGF0YSAlPiUgZmlsdGVyKGJldHdlZW4odG90YWwsbWluLG1heCkmbj5ubikNCiAgICAgICAgICBzdWJ0aXRsZSA8LSBwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC30LDQs9Cw0LvRjNC90L7RjiDQutGW0LvRjNC60ZbRgdGC0Y4g0L/QvtC80LXRgNC70LjRhSDQstGW0LQiLG1pbiwi0LTQviIgLG1heCwi0LLQuNC/0LDQtNC60ZbQsiIpDQogICAgDQogIH0NCn0NCg0KDQpwbG90PC1nZ3Bsb3QoeCwgYWVzKHg9b3JkLHk9RGVhdGhzKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5DQogICAgICAgICAgICAgICAgKSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDUsIDYwLCA1KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIG1heCticmssIGJyaykpICsNCiAgI3NjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMjAwMDAsIDEwMDApKSArDQogICNzY2FsZV9saW5ldHlwZV9kaXNjcmV0ZSgpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2lkZW50aXR5KCkgKw0KICBzY2FsZV9saW5ldHlwZV9tYW51YWwodmFsdWVzPXNhbXBsZShjKDEsMiksIG5yb3coeCkscmVwbGFjZSA9IFQpKSsNCiAgbGFicyh5PSLQl9Cw0LPQsNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDQv9C+0LzQtdGA0LvQuNGFIiwgeCA9IHBhc3RlMCgi0JrRltC70YzQutGW0YHRgtGMINC00L3RltCyINC/0L7Rh9C40L3QsNGO0YfQuCDQstGW0LQgIixzdGFydF9kLCIg0YHQvNC10YDRgtC10LkiKSwNCiAgICAgICB0aXRsZSA9ICLQl9Cw0LPQsNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDRgdC80LXRgNGC0LXQuSDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIiwgDQogICAgICAgc3VidGl0bGUgPSBzdWJ0aXRsZQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gcGx0LGRpcmVjdGlvbiA9IGRpcmVjdGlvbikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG91ciA9ICJyb3lhbGJsdWUzIikpDQoNCnJldHVybihwbG90KQ0KfQ0KDQoNCmBgYA0KDQrQlNC20LXRgNC10LvQviDQtNCw0L3QuNGFIC0gW0V1cm9wZWFuIENlbnRyZSBmb3IgRGlzZWFzZSBQcmV2ZW50aW9uIGFuZCBDb250cm9sXShodHRwczovL3d3dy5lY2RjLmV1cm9wYS5ldS9lbi9wdWJsaWNhdGlvbnMtZGF0YS9kb3dubG9hZC10b2RheXMtZGF0YS1nZW9ncmFwaGljLWRpc3RyaWJ1dGlvbi1jb3ZpZC0xOS1jYXNlcy13b3JsZHdpZGUpLg0KDQoqKtCU0LDQvdGWINC90LAgYHIgZGF5KFN5cy5EYXRlKCktMSlgINC60LLRltGC0L3RjyoqDQoNCjwvYnI+DQogDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KDQp0b3RhbF9kZWF0aF9taW4xPC0yNTAwDQp0b3RhbF9kZWF0aF9taW4yPC01MDANCnRvdGFsX2RlYXRoX21pbjM8LTM1MA0KdG90YWxfZGVhdGhfbWluNDwtMTUwDQp0b3RhbF9kZWF0aF9taW41PC0zNQ0KDQpgYGANCg0KDQoNCjwvYnI+DQoNCiMg0JTQuNC90LDQvNGW0LrQsCDQutGW0LvRjNC60L7RgdGC0ZYg0L3QvtCy0LjRhSDRgdC80LXRgNGC0LXQuSDQt9CwINC00LXQvdGMDQojIyMg0JrRgNCw0ZfQvdC4INGW0Lcg0LfQsNCz0LDQu9GM0L3QvtGOINC60ZbQu9GM0LrRltGB0YLRjiDRgdC80LXRgNGC0LXQuSDQsdGW0LvRjNGI0LUgYHIgdG90YWxfZGVhdGhfbWluMWANCg0KPC9icj4NCg0KYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQoNCnBsb3Q0bmV3PC1jcm5fbmV3X2RlYXRoKGNybjIsbWluPXRvdGFsX2RlYXRoX21pbjEsYnJrPTIwMCxkaXJlY3Rpb24gPSAwLHBsdCA9ICJTZXQxIiwgc3BhbiA9IDAuNSkNCiNwbG90NG5ldw0KZ2dwbG90bHkocGxvdDRuZXcrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQoNCjwvYnI+DQoNCiMjIyDQmtGA0LDRl9C90Lgg0ZbQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINGB0LzQtdGA0YLQtdC5INCy0ZbQtCBgciB0b3RhbF9kZWF0aF9taW4yYCDQtNC+ICBgciB0b3RhbF9kZWF0aF9taW4xYA0KDQo8L2JyPg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCg0KcGxvdDRuZXcyPC1jcm5fbmV3X2RlYXRoKGNybjIsbWluPXRvdGFsX2RlYXRoX21pbjIsIG1heD10b3RhbF9kZWF0aF9taW4xLCBicms9NTAsIGRpcmVjdGlvbiA9IDAsIHBsdCA9ICJTZXQxIiwgbj01LCBzcGFuID0gMC41NSkNCiMgcGxvdDRuZXcyDQoNCmdncGxvdGx5KHBsb3Q0bmV3MitnZ3RpdGxlKCIiKSkNCmBgYA0KDQo8L2JyPg0KPC9icj4NCg0KIyDQlNC40L3QsNC80ZbQutCwINC30LDQs9Cw0LvRjNC90L7RlyDQutGW0LvRjNC60L7RgdGC0ZYg0YHQvNC10YDRgtC10LkgIA0KPC9icj4NCg0KIyMjINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0YHQvNC10YDRgtC10Lkg0LHRltC70YzRiNC1IGByIHRvdGFsX2RlYXRoX21pbjFgDQoNCjwvYnI+DQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KcGxvdDQ8LWNybl90b3RhbF9kZWF0aChjcm4yLG1pbiA9IHRvdGFsX2RlYXRoX21pbjEpDQojcGxvdDQNCg0KZ2dwbG90bHkocGxvdDQrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQoNCg0KPC9icj4NCg0KIyMjINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0YHQvNC10YDRgtC10Lkg0LLRltC0IGByIHRvdGFsX2RlYXRoX21pbjNgINC00L4gYHIgdG90YWxfZGVhdGhfbWluMWAgKyDQhtGC0LDQu9GW0Y8g0LTQvtC00LDQvdCwINC00LvRjyDQv9C+0YDRltCy0L3Rj9C90L3Rjw0KPC9icj4NCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCg0KcGxvdDRzbWFsbDwtY3JuX3RvdGFsX2RlYXRoX2xpbmV0eXBlKGNybjIsbWluPXRvdGFsX2RlYXRoX21pbjMsbWF4PXRvdGFsX2RlYXRoX21pbjEsIGJyaz0yMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx0PSJTZXQxIikNCiNwbG90NHNtYWxsDQpnZ3Bsb3RseShwbG90NHNtYWxsK2dndGl0bGUoIiIpKQ0KYGBgDQoNCg0KDQo8L2JyPg0KDQojIyMg0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDRgdC80LXRgNGC0LXQuSDQstGW0LQgYHIgdG90YWxfZGVhdGhfbWluNGAg0LTQviBgciB0b3RhbF9kZWF0aF9taW4zYCArINCG0YLQsNC70ZbRjyDQtNC+0LTQsNC90LAg0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPDQo8L2JyPg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KcGxvdDRzbWFsbDI8LWNybl90b3RhbF9kZWF0aF9saW5ldHlwZShjcm4yLG1pbj10b3RhbF9kZWF0aF9taW40LG1heD10b3RhbF9kZWF0aF9taW4zLCBicms9NTAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx0PSJQYWlyZWQiKQ0KIyBwbG90NHNtYWxsMg0KDQpnZ3Bsb3RseShwbG90NHNtYWxsMitnZ3RpdGxlKCIiKSkNCmBgYA0KDQoNCg0KPC9icj4NCg0KIyMjINCE0LLRgNC+0L/QtdC50YHRjNC60ZYg0LrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDRgdC80LXRgNGC0LXQuSDQstGW0LQgYHIgdG90YWxfZGVhdGhfbWluNWAg0LTQviBgciB0b3RhbF9kZWF0aF9taW4zYCArINCG0YLQsNC70ZbRjyDQtNC+0LTQsNC90LAg0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPDQo8L2JyPg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KDQpwbG90NHNtYWxsMzwtY3JuX3RvdGFsX2RlYXRoX2xpbmV0eXBlKGNybjIsbWluPXRvdGFsX2RlYXRoX21pbjUsbWF4PXRvdGFsX2RlYXRoX21pbjQsIGJyaz0yMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHQ9IlBhaXJlZCIsZXVyb3BlID0gVFJVRSkNCiNwbG90NHNtYWxsMw0KDQoNCmdncGxvdGx5KHBsb3Q0c21hbGwzK2dndGl0bGUoIiIpKQ0KYGBgDQoNCg0KPC9icj4NCjwvYnI+DQoNCiMjINCU0LjQvdCw0LzRltC60LAg0YHQvNC10YDRgtC90L7RgdGC0ZYg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIC0g0JvQvtCz0LDRgNC40YTQvNGW0YfQvdCwINGI0LrQsNC70LANCjwvYnI+DQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQoNCng8LWNybjIgJT4lIGZpbHRlcih0b3RhbD50b3RhbF9kZWF0aF9taW4yKjImbj41KQ0KICAgICAgICAgICAgICAgICAgIA0KcGxvdDRsPC1nZ3Bsb3QoeCwgYWVzKHg9b3JkLHk9RGVhdGhzKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5DQogICAgICAgICAgICAgICAgKSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDYwLCA1KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gdHJhbnNfYnJlYWtzKCdsb2cxMCcsIGZ1bmN0aW9uKHgpIHJvdW5kKDEwXngsZGlnaXRzID0gMCkpLA0KICAgICAgICAgICAgICAgICAgICAgI2JyZWFrcyA9IGMoMCw1MDAsMTAwMCw1MDAwLDEwMDApI3NlcSgwLCAxMDAwMCwgMTAwMCksDQogICAgICAgICAgICAgICAgICAgICB0cmFucz0ibG9nMTAiKSArDQogICNzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDIwMDAwLCAxMDAwKSkgKw0KICAjc2NhbGVfbGluZXR5cGVfZGlzY3JldGUoKSArDQogICNzY2FsZV9saW5ldHlwZV9pZGVudGl0eSgpICsNCiAgc2NhbGVfbGluZXR5cGVfbWFudWFsKHZhbHVlcz1zYW1wbGUoYygxKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCa0ZbQu9GM0LrRltGB0YLRjCDQv9C+0LzQtdGA0LvQuNGFIC0gbG9nIiwgeCA9IHBhc3RlMCgi0JrRltC70YzQutGW0YHRgtGMINC00L3RltCyINC/0L7Rh9C40L3QsNGO0YfQuCDQstGW0LQgIixzdGFydF9kLCIg0YHQvNC10YDRgtC10LkiKSwNCiAgICAgICB0aXRsZSA9ICLQodC80LXRgNGC0L3RltGB0YLRjCDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFICjQm9C+0LPQsNGA0LjRhNC80ZbRh9C90LAg0YjQutCw0LvQsCkiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LHRltC70YzRiNC1Iix0b3RhbF9kZWF0aF9taW4yLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKQ0KDQpwbG90NGwNCg0KYGBgDQoNCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3Q0bCtnZ3RpdGxlKCIiKSkNCmBgYA0KDQoNCjwvYnI+DQo8L2JyPg0KDQojINCg0ZbQstC10L3RjCDRgdC80LXRgNGC0L3QvtGB0YLRliDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUgDQoNCjwvYnI+DQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwLCBkcGkgPSAyMDB9DQpkZXRoX21pbjwtMzANCmluZl9taW48LTIwMDANCnk8LWNybjMgJT4lIGZpbHRlcihJbmZlY3RlZD5pbmZfbWluKSAlPiUgDQogIG11dGF0ZShoanVzdD1pZmVsc2UoQ291bnRyeSAlaW4lIGMoIkdlcm1hbnkiLCJDaGluYSIpLC0wLjcsMC41KSwNCiAgICAgICAgIHZqdXN0PWlmZWxzZShDb3VudHJ5ICVpbiUgYygiR2VybWFueSIsIkNoaW5hIiksMC4zLC0yKSwNCiAgICAgICAgIGhqdXN0PWlmZWxzZShDb3VudHJ5ICVpbiUgYygiVVMiLCJTd2l0emVybGFuZCIsIkdlcm1hbnkiLCJJcmFuIiwiVHVya2V5IiwiQ2FuYWRhIiksMC41LGhqdXN0KSwNCiAgICAgICAgIHZqdXN0PWlmZWxzZShDb3VudHJ5ICVpbiUgYygiVVMiLCJTd2l0emVybGFuZCIsIkdlcm1hbnkiLCJJcmFuIiwiVHVya2V5IiwiQ2FuYWRhIiksMS41LHZqdXN0KSwNCiAgICAgICAgICkNCg0KDQpzY2FsZTwtMjAwMDANCnBsb3Q1PC1nZ3Bsb3QoeSkgICsgDQogICAgI2dlb21fYmFyKGFlcyh4PUNvdW50cnksIHk9SW5mZWN0ZWQpLHN0YXQ9ImlkZW50aXR5IiwgZmlsbD0idGFuMSIsIGNvbG91cj0ic2llbm5hMyIpKw0KICBnZW9tX2NvbChhZXMoeD1yZW9yZGVyKENvdW50cnksLUluZmVjdGVkKSwgeT1JbmZlY3RlZCksZmlsbD0iaW5kaWFucmVkMiIpKw0KICBnZW9tX2xpbmUoYWVzKHg9cmVvcmRlcihDb3VudHJ5LC1JbmZlY3RlZCksIHk9ZGVhdGhfcmF0ZSpzY2FsZSksIGNvbG9yPSJzdGVlbGJsdWU0IiwgZ3JvdXAgPSAxLCBzaXplID0gMS41KSArIA0KICBnZW9tX3BvaW50KGFlcyh4PXJlb3JkZXIoQ291bnRyeSwtSW5mZWN0ZWQpLCB5PWRlYXRoX3JhdGUqc2NhbGUpLCBjb2xvcj0ic3RlZWxibHVlNCIsIHNpemUgPSAzKSArDQogIGdlb21fdGV4dChhZXMobGFiZWw9ZGVhdGhfcmF0ZSwgeD1Db3VudHJ5LCB5PWRlYXRoX3JhdGUqc2NhbGUpLCBjb2xvdXI9InN0ZWVsYmx1ZTQiLHZqdXN0ID0gIHkkdmp1c3QsIGhqdXN0PXkkaGp1c3Qsc2l6ZSA9IDMuMSkrDQogICAgI2dlb21fdGV4dChhZXMobGFiZWw9UmVzcG9uc2UsIHg9WWVhciwgeT0wLjk1KlJlc3BvbnNlKSwgY29sb3VyPSJibGFjayIpKw0KICAgIHNjYWxlX3lfY29udGludW91cygNCiAgICAgICNsaW1pdHMgPSBjKDAsIDMwMDAwMDApLA0KICAgICAgYnJlYWtzID0gc2VxKDAsIDgwMDAwMCwgMjUwMDApLA0KICAgICAgc2VjLmF4aXMgPSBzZWNfYXhpcyh+Li9zY2FsZSwgYnJlYWtzID0gc2VxKDAsIDMwLCAxKSwgbmFtZSA9ICLQodC80LXRgNGC0L3RltGB0YLRjCwgJSIpLA0KICAgICAgZXhwYW5kID0gYygwLDApLA0KICAgICAgbGFiZWxzID0gc2NhbGVzOjpjb21tYSMsdHJhbnM9J2xvZycNCiAgICAgICkgKw0KICAgIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC30LDRgNCw0LbQtdC90LjRhSIsIHggPSAiIiwNCiAgICAgICB0aXRsZSA9ICLQodC80LXRgNGC0L3RltGB0YLRjCDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIiwgDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDQt9Cw0YDQsNC20LXQvdC40YUg0LHRltC70YzRiNC1IixpbmZfbWluKQ0KICAgICAgICkgKyBjcm5fdGhlbWUgKw0KICB0aGVtZShwbG90Lm1hcmdpbj11bml0KGMoMC41LDAuNSwwLjEsMC4xKSwiY20iKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxLCAgdmp1c3QgPSAwLjMsIHNpemUgPSAxMyxjb2xvdXIgPSAiZ3JleTUiKSwNCiAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDgpLA0KICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZT0xNCxtYXJnaW4gPSBtYXJnaW4odCA9IDE1KSksDQogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplPTE0LGNvbG91ciA9ICJncmV5MzUiLG1hcmdpbiA9IG1hcmdpbihyID0gMTAsbD0xMCxiPTEwKSkpDQoNCiAgDQoNCnBsb3Q1DQoNCmBgYA0KDQoNCg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMCwgaW5jbHVkZT1GQUxTRX0NCm1pbl9saW0xPC0yMDAwMA0KI2NybjEgJT4lIGZpbHRlcih0b3RhbD5taW5fbGltJiFkdXBsaWNhdGVkKENvdW50cnkpKSAlPiUgbnJvdygpDQogIA0KcGxvdDEuMTwtZ2dwbG90KGNybjEgJT4lIGZpbHRlcih0b3RhbD5taW5fbGltMSksIGFlcyh4PW9yZCx5PUluZmVjdGVkKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5DQogICAgICAgICAgICAgICAgKSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMCwgNSkNCiAgICAgICAgICAgICAgICAgICAgICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMDAwMDAsIDUwMDAwKSxleHBhbmQgPSBjKDAuMDIsMCkpICsNCiAgc2NhbGVfbGluZXR5cGVfbWFudWFsKHZhbHVlcz1zYW1wbGUoYygxLDIpLGNybjEgJT4lIGZpbHRlcih0b3RhbD5taW5fbGltMSYhZHVwbGljYXRlZChDb3VudHJ5KSkgJT4lIG5yb3coKSxyZXBsYWNlID0gVCkpKw0KICAjc2NhbGVfbGluZXR5cGVfZGlzY3JldGUoKSArDQogICNzY2FsZV9saW5ldHlwZV9pZGVudGl0eSgpICsNCiAgbGFicyh5PSLQmtGW0LvRjNC60ZbRgdGC0Ywg0LfQsNGA0LDQttC10L3QuNGFIiwgeCA9IHBhc3RlMCgi0JTQtdC90Ywg0Lcg0YPQvNC+0LLQvdC+0LPQviDQv9C+0YfQsNGC0LrRgyDQtdC/0ZbQtNC10LzRltGXICgiLHN0YXJ0X2ksIiDQstC40L/QsNC00LrRltCyKSIpLA0KICAgICAgIHRpdGxlID0gItCf0L7RiNC40YDQtdC90L3RjyDQtdC/0ZbQtNC10LzRltGXIENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSIsIA0KICAgICAgIHN1YnRpdGxlID0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0LfQsNGA0LDQttC10L3QuNGFINCx0ZbQu9GM0YjQtSIsbWluX2xpbTEsItCy0LjQv9Cw0LTQutGW0LIiKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIsZGlyZWN0aW9uPS0xKQ0KDQpwbG90MS4xDQoNCmBgYA0KDQo8L2JyPg0KPC9icj4NCg0KIyDQlNC40L3QsNC80ZbQutCwINC60ZbQu9GM0LrQvtGB0YLRliDQstC40L/QsNC00LrRltCyIENPVklELTE5IA0KPC9icj4NCg0KIyMjINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4gINCx0ZbQu9GM0YjQtSBgciBhcy5jaGFyYWN0ZXIobWluX2xpbTEpYCDQstC40L/QsNC00LrRltCyDQo8L2JyPg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMCwgZWNobz1GQUxTRX0NCmdncGxvdGx5KHBsb3QxLjErZ2d0aXRsZSgiIikpIA0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQptYXhfbGltMjwtMjAwMDANCm1pbl9saW0yPC04MDAwDQoNCnBsb3QxLjI8LWdncGxvdChjcm4xICU+JSBmaWx0ZXIoKGJldHdlZW4odG90YWwsbWluX2xpbTIsbWF4X2xpbTIpJm4+OCkjfChDb3VudHJ5PT0iU3BhaW4iJm9yZDwxNikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksIGFlcyh4PW9yZCx5PUluZmVjdGVkKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5KSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMCwgNSkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCBtYXhfbGltMiwgMTAwMCksbGltaXRzID0gYygxLCBtYXhfbGltMiksZXhwYW5kID0gYygwLjAyLDApKSArDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC30LDRgNCw0LbQtdC90LjRhSIsIHggPSBwYXN0ZTAoItCU0LXQvdGMINC3INGD0LzQvtCy0L3QvtCz0L4g0L/QvtGH0LDRgtC60YMg0LXQv9GW0LTQtdC80ZbRlyAoIixzdGFydF9pLCIg0LLQuNC/0LDQtNC60ZbQsikiKSwNCiAgICAgICB0aXRsZSA9ICLQn9C+0YjQuNGA0LXQvdC90Y8g0LXQv9GW0LTQtdC80ZbRlyBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30LDRgNCw0LbQtdC90LjRhSDQstGW0LQgIixtaW5fbGltMiwgItC00L4iLG1heF9saW0yLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsNCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiUGFpcmVkIikNCg0KcGxvdDEuMg0KDQpgYGANCg0KPC9icj4NCjwvYnI+DQoNCiMjIyDQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINCy0LjQv9Cw0LTQutGW0LIg0LLRltC0IGByIG1pbl9saW0yYCDQtNC+IGByIGFzLmNoYXJhY3RlcihtYXhfbGltMilgDQoNCjwvYnI+DQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KZ2dwbG90bHkocGxvdDEuMitnZ3RpdGxlKCIiKSkNCmBgYA0KDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQptYXhfbGltMzwtODAwMA0KbWluX2xpbTM8LTE0MDANCg0KcGxvdDEuMzwtZ2dwbG90KGNybjEgJT4lIGZpbHRlcigoYmV0d2Vlbih0b3RhbCxtaW5fbGltMyxtYXhfbGltMykmbj44JmV1cm9wZSkjfChDb3VudHJ5PT0iU3BhaW4iJm9yZDwxNikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksIGFlcyh4PW9yZCx5PUluZmVjdGVkKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5KSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMCwgNSkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCBtYXhfbGltMywgNTAwKSxsaW1pdHMgPSBjKDEsIG1heF9saW0zKSxleHBhbmQgPSBjKDAuMDIsMCkpICsNCiAgbGFicyh5PSLQmtGW0LvRjNC60ZbRgdGC0Ywg0LfQsNGA0LDQttC10L3QuNGFIiwgeCA9IHBhc3RlMCgi0JTQtdC90Ywg0Lcg0YPQvNC+0LLQvdC+0LPQviDQv9C+0YfQsNGC0LrRgyDQtdC/0ZbQtNC10LzRltGXICgiLHN0YXJ0X2ksIiDQstC40L/QsNC00LrRltCyKSIpLA0KICAgICAgIHRpdGxlID0gItCf0L7RiNC40YDQtdC90L3RjyDQtdC/0ZbQtNC10LzRltGXIENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSIsIA0KICAgICAgIHN1YnRpdGxlID0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0LfQsNGA0LDQttC10L3QuNGFINCy0ZbQtCAiLG1pbl9saW0zLCAi0LTQviIsbWF4X2xpbTMsItCy0LjQv9Cw0LTQutGW0LIiKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKw0KICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKQ0KDQpwbG90MS4zDQoNCmBgYA0KDQo8L2JyPg0KPC9icj4NCg0KIyMjINCE0LLRgNC+0L/QtdC50YHRjNC60ZYg0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDQstC40L/QsNC00LrRltCyINCy0ZbQtCBgciBtaW5fbGltM2Ag0LTQviBgciBtYXhfbGltM2ANCg0KPC9icj4NCg0KYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQpnZ3Bsb3RseShwbG90MS4zK2dndGl0bGUoIiIpKQ0KYGBgDQoNCg0KDQpgYGB7ciBldmFsPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMCwgaW5jbHVkZT1GQUxTRX0NCg0KcGxvdDY8LWdncGxvdChjcm4xICU+JSBmaWx0ZXIoQ291bnRyeSAlaW4lIGMoIlRhaXdhbiIsIlNpbmdhcG9yZSIsIkphcGFuIiwiU291dGggS29yZWEiKSksIGFlcyh4PW9yZCx5PURlYXRocykpICsNCiAgZ2VvbV9saW5lKGFlcyhjb2xvciA9IENvdW50cnksIGxpbmV0eXBlID0gQ291bnRyeSksc2l6ZT0xLjUpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCA2MCwgMSkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAxMDAwLCAyMCksZXhwYW5kID0gYygwLjAyLDApKSArDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC30LDRgNCw0LbQtdC90LjRhSIsIHggPSBwYXN0ZTAoItCU0LXQvdGMINC3INGD0LzQvtCy0L3QvtCz0L4g0L/QvtGH0LDRgtC60YMg0LXQv9GW0LTQtdC80ZbRlyAoIixzdGFydF9pLCIg0LLQuNC/0LDQtNC60ZbQsikiKSwNCiAgICAgICB0aXRsZSA9ICLQn9C+0YjQuNGA0LXQvdC90Y8gQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIiwgDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZSgi0K/Qv9C+0L3RltGPLCDQodC40L3Qs9Cw0L/Rg9GALCDQotCw0LnQstCw0L3RjCIpDQogICAgICAgIywgY2FwdGlvbiA9ICJNeSBjYXB0aW9uIg0KICAgICAgICkrDQogIGNybl90aGVtZSArDQogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIpDQoNCnBsb3Q2DQoNCmBgYA0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KZ2dzYXZlKCdEOlxcTXkgZG9jdW1lbnRzXFwhR29vZ2xlRHJpdmVcXFB1YmxpY1xcY292aWQtMTlcXGRlYXRoc19jb3VudHJpZXMucG5nJyxwbG90PXBsb3Q1LA0KICAgICAgIGRwaT0yMDAsIGhlaWdodCA9IDYsd2lkdGggPSAxMCx1bml0cyA9ICJpbiIpDQoNCmdnc2F2ZSgnRDpcXE15IGRvY3VtZW50c1xcIUdvb2dsZURyaXZlXFxQdWJsaWNcXGNvdmlkLTE5XFxkZWF0aF90cmVuZC5wbmcnLHBsb3Q9cGxvdDQsDQogICAgICAgZHBpPTMwMCwgaGVpZ2h0ID0gNix3aWR0aCA9IDEwLHVuaXRzID0gImluIikNCg0KZ2dzYXZlKCdEOlxcTXkgZG9jdW1lbnRzXFwhR29vZ2xlRHJpdmVcXFB1YmxpY1xcY292aWQtMTlcXGRlYXRoX3RyZW5kX3NtYWxsLnBuZycscGxvdD1wbG90NHNtYWxsLA0KICAgICAgIGRwaT0zMDAsIGhlaWdodCA9IDYsd2lkdGggPSAxMCx1bml0cyA9ICJpbiIpDQoNCmdnc2F2ZSgnRDpcXE15IGRvY3VtZW50c1xcIUdvb2dsZURyaXZlXFxQdWJsaWNcXGNvdmlkLTE5XFxkZWF0aF90cmVuZF9zbWFsbDIucG5nJyxwbG90PXBsb3Q0c21hbGwyLA0KICAgICAgIGRwaT0zMDAsIGhlaWdodCA9IDYsd2lkdGggPSAxMCx1bml0cyA9ICJpbiIpDQoNCmdnc2F2ZSgnRDpcXE15IGRvY3VtZW50c1xcIUdvb2dsZURyaXZlXFxQdWJsaWNcXGNvdmlkLTE5XFxkZWF0aF90cmVuZF9zbWFsbDMucG5nJyxwbG90PXBsb3Q0c21hbGwzLA0KICAgICAgIGRwaT0zMDAsIGhlaWdodCA9IDYsd2lkdGggPSAxMCx1bml0cyA9ICJpbiIpDQoNCmdnc2F2ZSgnRDpcXE15IGRvY3VtZW50c1xcIUdvb2dsZURyaXZlXFxQdWJsaWNcXGNvdmlkLTE5XFxkZWF0aF9uZXcucG5nJyxwbG90PXBsb3Q0bmV3LA0KICAgICAgIGRwaT0zMDAsIGhlaWdodCA9IDYsd2lkdGggPSAxMCx1bml0cyA9ICJpbiIpDQoNCg0KZ2dzYXZlKCdEOlxcTXkgZG9jdW1lbnRzXFwhR29vZ2xlRHJpdmVcXFB1YmxpY1xcY292aWQtMTlcXGRlYXRoX25ldzIucG5nJyxwbG90PXBsb3Q0bmV3MiwNCiAgICAgICBkcGk9MzAwLCBoZWlnaHQgPSA2LHdpZHRoID0gMTAsdW5pdHMgPSAiaW4iKQ0KDQpgYGANCg0K